build: Generate the API references (WIP)
authorEmmanuele Bassi <ebassi@gnome.org>
Wed, 19 Apr 2017 10:35:45 +0000 (11:35 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Wed, 3 May 2017 14:10:57 +0000 (15:10 +0100)
Still a work in progress.

14 files changed:
docs/reference/gdk/meson.build [new file with mode: 0644]
docs/reference/gsk/gsk-docs.xml [deleted file]
docs/reference/gsk/gsk4-docs.xml [new file with mode: 0644]
docs/reference/gsk/meson.build [new file with mode: 0644]
docs/reference/gtk/Makefile.am
docs/reference/gtk/gtk-docs.sgml [deleted file]
docs/reference/gtk/gtk3-overrides.txt [deleted file]
docs/reference/gtk/gtk4-docs.xml [new file with mode: 0644]
docs/reference/gtk/gtk4-overrides.txt [new file with mode: 0644]
docs/reference/gtk/meson.build [new file with mode: 0644]
docs/reference/meson.build [new file with mode: 0644]
docs/tools/meson.build [new file with mode: 0644]
meson.build
meson_options.txt

diff --git a/docs/reference/gdk/meson.build b/docs/reference/gdk/meson.build
new file mode 100644 (file)
index 0000000..e569767
--- /dev/null
@@ -0,0 +1,173 @@
+private_headers = [
+  'gdkintl.h',
+  'gdkmarshalers.h',
+  'gdkkeysyms.h',
+  'gdkinternals.h',
+  'gdkprivate.h',
+  'gdk-private.h',
+  'gdkapplaunchcontextprivate.h',
+  'gdkcursorprivate.h',
+  'gdkdevicemanagerprivate.h',
+  'gdkdeviceprivate.h',
+  'gdkdisplaymanagerprivate.h',
+  'gdkdisplayprivate.h',
+  'gdkdndprivate.h',
+  'gdkdrawcontextprivate.h',
+  'gdkframeclockprivate.h',
+  'gdkglcontextprivate.h',
+  'gdkkeysprivate.h',
+  'gdkmonitorprivate.h',
+  'gdkscreenprivate.h',
+  'gdkseatdefaultprivate.h',
+  'gdkseatprivate.h',
+  'gdkvisualprivate.h',
+  'gdkvulkancontextprivate.h',
+  'keyname-table.h',
+  'win32',
+  'x11',
+  'quartz',
+  'broadway',
+  'wayland',
+]
+
+images = [
+  'images/rotated-text.png',
+  'images/X_cursor.png',
+  'images/arrow.png',
+  'images/based_arrow_down.png',
+  'images/based_arrow_up.png',
+  'images/boat.png',
+  'images/bogosity.png',
+  'images/bottom_left_corner.png',
+  'images/bottom_right_corner.png',
+  'images/bottom_side.png',
+  'images/bottom_tee.png',
+  'images/box_spiral.png',
+  'images/center_ptr.png',
+  'images/circle.png',
+  'images/clock.png',
+  'images/coffee_mug.png',
+  'images/cross.png',
+  'images/cross_reverse.png',
+  'images/crosshair.png',
+  'images/diamond_cross.png',
+  'images/dot.png',
+  'images/dotbox.png',
+  'images/double_arrow.png',
+  'images/draft_large.png',
+  'images/draft_small.png',
+  'images/draped_box.png',
+  'images/exchange.png',
+  'images/fleur.png',
+  'images/gobbler.png',
+  'images/gumby.png',
+  'images/hand1.png',
+  'images/hand2.png',
+  'images/heart.png',
+  'images/icon.png',
+  'images/iron_cross.png',
+  'images/left_ptr.png',
+  'images/left_side.png',
+  'images/left_tee.png',
+  'images/leftbutton.png',
+  'images/ll_angle.png',
+  'images/lr_angle.png',
+  'images/man.png',
+  'images/middlebutton.png',
+  'images/mouse.png',
+  'images/pencil.png',
+  'images/pirate.png',
+  'images/plus.png',
+  'images/question_arrow.png',
+  'images/right_ptr.png',
+  'images/right_side.png',
+  'images/right_tee.png',
+  'images/rightbutton.png',
+  'images/rtl_logo.png',
+  'images/sailboat.png',
+  'images/sb_down_arrow.png',
+  'images/sb_h_double_arrow.png',
+  'images/sb_left_arrow.png',
+  'images/sb_right_arrow.png',
+  'images/sb_up_arrow.png',
+  'images/sb_v_double_arrow.png',
+  'images/shuttle.png',
+  'images/sizing.png',
+  'images/spider.png',
+  'images/spraycan.png',
+  'images/star.png',
+  'images/target.png',
+  'images/tcross.png',
+  'images/top_left_arrow.png',
+  'images/top_left_corner.png',
+  'images/top_right_corner.png',
+  'images/top_side.png',
+  'images/top_tee.png',
+  'images/trek.png',
+  'images/ul_angle.png',
+  'images/umbrella.png',
+  'images/ur_angle.png',
+  'images/watch.png',
+  'images/xterm.png',
+  'images/alias_cursor.png',
+  'images/all_scroll_cursor.png',
+  'images/cell_cursor.png',
+  'images/col_resize_cursor.png',
+  'images/copy_cursor.png',
+  'images/crosshair_cursor.png',
+  'images/default_cursor.png',
+  'images/e_resize_cursor.png',
+  'images/ew_resize_cursor.png',
+  'images/grabbing_cursor.png',
+  'images/grab_cursor.png',
+  'images/hand_cursor.png',
+  'images/context_menu_cursor.png',
+  'images/help_cursor.png',
+  'images/move_cursor.png',
+  'images/ne_resize_cursor.png',
+  'images/nesw_resize_cursor.png',
+  'images/no_drop_cursor.png',
+  'images/not_allowed_cursor.png',
+  'images/n_resize_cursor.png',
+  'images/ns_resize_cursor.png',
+  'images/nw_resize_cursor.png',
+  'images/nwse_resize_cursor.png',
+  'images/pointer_cursor.png',
+  'images/progress_cursor.png',
+  'images/row_resize_cursor.png',
+  'images/se_resize_cursor.png',
+  'images/s_resize_cursor.png',
+  'images/sw_resize_cursor.png',
+  'images/text_cursor.png',
+  'images/vertical_text_cursor.png',
+  'images/wait_cursor.png',
+  'images/w_resize_cursor.png',
+  'images/X_cursor.png',
+  'images/zoom_in_cursor.png',
+  'images/zoom_out_cursor.png',
+]
+
+configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+
+gnome.gtkdoc('gdk4',
+             main_xml: 'gdk4-docs.xml',
+             src_dir: [
+              join_paths(meson.source_root(), 'gdk'),
+              join_paths(meson.build_root(), 'gdk'),
+            ],
+             dependencies: libgtk_dep,
+             gobject_typesfile: 'gdk4.types',
+             scan_args: [
+               '--ignore-decorators=_GDK_EXTERN',
+              '--ignore-decorators=G_GNUC_WARN_UNUSED_RESULT',
+               '--ignore-headers=' + ' '.join(private_headers),
+             ],
+             fixxref_args: [
+               '--html-dir=@0@'.format(docpath),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+               '--extra-dir=@0@'.format(cairo_docpath),
+             ],
+             html_assets: images,
+             install: true)
diff --git a/docs/reference/gsk/gsk-docs.xml b/docs/reference/gsk/gsk-docs.xml
deleted file mode 100644 (file)
index 329dc01..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
-<!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
-  <bookinfo>
-    <title>GSK 4 Reference Manual</title>
-    <releaseinfo>
-      This document is for the GSK 4 library, version &version;
-      The latest versions can be found online at
-      <ulink role="online-location" url="https://developer.gnome.org/gsk4/">https://developer.gnome.org/gsk4/</ulink>.
-    </releaseinfo>
-  </bookinfo>
-
-  <reference id="reference">
-    <title>API Reference</title>
-    <xi:include href="xml/GskRenderer.xml" />
-    <xi:include href="xml/GskRenderNode.xml" />
-  </reference>
-
-  <index id="api-index-full">
-    <title>Index of all symbols</title>
-    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
-  </index>
-
-</book>
diff --git a/docs/reference/gsk/gsk4-docs.xml b/docs/reference/gsk/gsk4-docs.xml
new file mode 100644 (file)
index 0000000..329dc01
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
+<!ENTITY version SYSTEM "version.xml">
+]>
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+  <bookinfo>
+    <title>GSK 4 Reference Manual</title>
+    <releaseinfo>
+      This document is for the GSK 4 library, version &version;
+      The latest versions can be found online at
+      <ulink role="online-location" url="https://developer.gnome.org/gsk4/">https://developer.gnome.org/gsk4/</ulink>.
+    </releaseinfo>
+  </bookinfo>
+
+  <reference id="reference">
+    <title>API Reference</title>
+    <xi:include href="xml/GskRenderer.xml" />
+    <xi:include href="xml/GskRenderNode.xml" />
+  </reference>
+
+  <index id="api-index-full">
+    <title>Index of all symbols</title>
+    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
+  </index>
+
+</book>
diff --git a/docs/reference/gsk/meson.build b/docs/reference/gsk/meson.build
new file mode 100644 (file)
index 0000000..0464afb
--- /dev/null
@@ -0,0 +1,61 @@
+private_headers = [
+  'gskcairoblurprivate.h',
+  'gskcairorendererprivate.h',
+  'gskdebugprivate.h',
+  'gskgldriverprivate.h',
+  'gskglprofilerprivate.h',
+  'gskglrendererprivate.h',
+  'gskprivate.h',
+  'gskprofilerprivate.h',
+  'gskrendererprivate.h',
+  'gskrendernodeprivate.h',
+  'gskroundedrectprivate.h',
+  'gskshaderbuilderprivate.h',
+  'gsktextureprivate.h',
+  'gskvulkanblendpipelineprivate.h',
+  'gskvulkanborderpipelineprivate.h',
+  'gskvulkanboxshadowpipelineprivate.h',
+  'gskvulkanbufferprivate.h',
+  'gskvulkanclipprivate.h',
+  'gskvulkancolorpipelineprivate.h',
+  'gskvulkancommandpoolprivate.h',
+  'gskvulkaneffectpipelineprivate.h',
+  'gskvulkanimageprivate.h',
+  'gskvulkanlineargradientpipelineprivate.h',
+  'gskvulkanmemoryprivate.h',
+  'gskvulkanpipelineprivate.h',
+  'gskvulkanpushconstantsprivate.h',
+  'gskvulkanrendererprivate.h',
+  'gskvulkanrenderpassprivate.h',
+  'gskvulkanrenderprivate.h',
+  'gskvulkanshaderprivate.h',
+]
+
+images = [
+]
+
+configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+
+gnome.gtkdoc('gsk4',
+             main_xml: 'gsk4-docs.xml',
+             src_dir: [
+              join_paths(meson.source_root(), 'gsk'),
+              join_paths(meson.build_root(), 'gsk'),
+            ],
+             dependencies: libgtk_dep,
+             gobject_typesfile: 'gsk4.types',
+             scan_args: [
+               '--ignore-decorators=_GDK_EXTERN',
+              '--ignore-decorators=G_GNUC_WARN_UNUSED_RESULT',
+               '--ignore-headers=' + ' '.join(private_headers),
+             ],
+             fixxref_args: [
+               '--html-dir=@0@'.format(docpath),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+               '--extra-dir=@0@'.format(cairo_docpath),
+              '--extra-dir=../gdk',
+             ],
+             html_assets: images,
+             install: true)
index e02fc818b884a9a44c2977b270d53e4f4f258de0..9ec9fb1cf34b26e3d8cab39dd4481e14d614b7ab 100644 (file)
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = 1.6
 DOC_MODULE=gtk4
 
 # The top-level SGML file.
-DOC_MAIN_SGML_FILE=gtk-docs.sgml
+DOC_MAIN_SGML_FILE=gtk4-docs.xml
 
 # Extra options to supply to gtkdoc-scan
 SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED"
diff --git a/docs/reference/gtk/gtk-docs.sgml b/docs/reference/gtk/gtk-docs.sgml
deleted file mode 100644 (file)
index ff1bc9c..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
-<!ENTITY version SYSTEM "version.xml">
-<!ENTITY pi "&#960;">
-<!ENTITY solidus "&#8260;">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
-  <bookinfo>
-    <title>GTK+ 4 Reference Manual</title>
-    <releaseinfo>
-      This document is for the GTK+ 4 library, version &version;.
-      The latest versions can be found online at
-      <ulink role="online-location" url="https://developer.gnome.org/gtk4/">https://developer.gnome.org/gtk4/</ulink>.
-      If you are looking for the older GTK+ 3 series of libraries,
-      see <ulink role="online-location" url="https://developer.gnome.org/gtk3/">https://developer.gnome.org/gtk3/</ulink>.
-    </releaseinfo>
-  </bookinfo>
-
-  <part id="gtk">
-    <title>GTK+ Overview</title>
-    <xi:include href="overview.xml"/>
-    <xi:include href="xml/getting_started.xml"/>
-    <xi:include href="resources.sgml" />
-    <xi:include href="xml/question_index.sgml" />
-    <xi:include href="drawing-model.xml" />
-    <xi:include href="xml/input-handling.xml" />
-  </part>
-
-  <part id="gtkobjects">
-    <title>GTK+ Widgets and Objects</title>
-
-    <chapter>
-      <title>Object Hierarchy</title>
-      <xi:include href="xml/tree_index.sgml" />
-    </chapter>
-
-    <chapter>
-      <title>Widget Gallery</title>
-      <xi:include href="visual_index.xml" />
-    </chapter>
-
-    <chapter id="Application">
-      <title>Application support</title>
-      <xi:include href="xml/gtkapplication.xml" />
-      <xi:include href="xml/gtkapplicationwindow.xml" />
-      <xi:include href="xml/gtkactionable.xml" />
-    </chapter>
-
-    <chapter id="Builder">
-      <title>Interface builder</title>
-      <xi:include href="xml/gtkbuilder.xml" />
-      <xi:include href="xml/gtkbuildable.xml" />
-    </chapter>
-
-    <chapter id="WindowWidgets">
-      <title>Windows</title>
-      <xi:include href="xml/gtkwindow.xml" />
-      <xi:include href="xml/gtkdialog.xml" />
-      <xi:include href="xml/gtkmessagedialog.xml" />
-      <xi:include href="xml/gtkaboutdialog.xml" />
-      <xi:include href="xml/gtkassistant.xml" />
-      <xi:include href="xml/gtkinvisible.xml" />
-      <xi:include href="xml/gtkwindowgroup.xml" />
-    </chapter>
-
-    <chapter id="LayoutContainers">
-      <title>Layout Containers</title>
-      <xi:include href="xml/gtkbox.xml" />
-      <xi:include href="xml/gtkgrid.xml" />
-      <xi:include href="xml/gtkrevealer.xml" />
-      <xi:include href="xml/gtklistbox.xml" />
-      <xi:include href="xml/gtkflowbox.xml" />
-      <xi:include href="xml/gtkstack.xml" />
-      <xi:include href="xml/gtkstackswitcher.xml" />
-      <xi:include href="xml/gtkstacksidebar.xml" />
-      <xi:include href="xml/gtkactionbar.xml" />
-      <xi:include href="xml/gtkheaderbar.xml" />
-      <xi:include href="xml/gtkoverlay.xml" />
-      <xi:include href="xml/gtkbbox.xml" />
-      <xi:include href="xml/gtkpaned.xml" />
-      <xi:include href="xml/gtklayout.xml" />
-      <xi:include href="xml/gtknotebook.xml" />
-      <xi:include href="xml/gtkexpander.xml" />
-      <xi:include href="xml/gtkorientable.xml" />
-      <xi:include href="xml/gtkaspectframe.xml" />
-      <xi:include href="xml/gtkfixed.xml" />
-    </chapter>
-
-    <chapter id="DisplayWidgets">
-      <title>Display Widgets</title>
-      <xi:include href="xml/gtklabel.xml" />
-      <xi:include href="xml/gtkimage.xml" />
-      <xi:include href="xml/gtkspinner.xml" />
-      <xi:include href="xml/gtkinfobar.xml" />
-      <xi:include href="xml/gtkprogressbar.xml" />
-      <xi:include href="xml/gtklevelbar.xml" />
-      <xi:include href="xml/gtkstatusbar.xml" />
-      <xi:include href="xml/gtkaccellabel.xml" />
-    </chapter>
-
-    <chapter id="ButtonWidgets">
-      <title>Buttons and Toggles</title>
-      <xi:include href="xml/gtkbutton.xml" />
-      <xi:include href="xml/gtkcheckbutton.xml" />
-      <xi:include href="xml/gtkradiobutton.xml" />
-      <xi:include href="xml/gtktogglebutton.xml" />
-      <xi:include href="xml/gtklinkbutton.xml" />
-      <xi:include href="xml/gtkmenubutton.xml" />
-      <xi:include href="xml/gtkswitch.xml" />
-      <xi:include href="xml/gtkscalebutton.xml" />
-      <xi:include href="xml/gtkvolumebutton.xml" />
-      <xi:include href="xml/gtklockbutton.xml" />
-      <xi:include href="xml/gtkmodelbutton.xml" />
-    </chapter>
-
-    <chapter id="NumericEntry">
-      <title>Numeric and Text Data Entry</title>
-      <xi:include href="xml/gtkentry.xml" />
-      <xi:include href="xml/gtkentrybuffer.xml" />
-      <xi:include href="xml/gtkentrycompletion.xml" />
-      <xi:include href="xml/gtkscale.xml" />
-      <xi:include href="xml/gtkspinbutton.xml" />
-      <xi:include href="xml/gtksearchentry.xml" />
-      <xi:include href="xml/gtksearchbar.xml" />
-      <xi:include href="xml/gtkeditable.xml" />
-    </chapter>
-
-    <chapter id="TextWidgetObjects">
-      <title>Multiline Text Editor</title>
-      <xi:include href="xml/text_widget.sgml" />
-      <xi:include href="xml/gtktextiter.xml" />
-      <xi:include href="xml/gtktextmark.xml" />
-      <xi:include href="xml/gtktextbuffer.xml" />
-      <xi:include href="xml/gtktexttag.xml" />
-      <xi:include href="xml/gtktexttagtable.xml" />
-      <xi:include href="xml/gtktextview.xml" />
-    </chapter>
-
-    <chapter id="TreeWidgetObjects">
-      <title>Tree, List and Icon Grid Widgets</title>
-      <xi:include href="xml/tree_widget.sgml" />
-      <xi:include href="xml/gtktreemodel.xml" />
-      <xi:include href="xml/gtktreeselection.xml" />
-      <xi:include href="xml/gtktreeviewcolumn.xml" />
-      <xi:include href="xml/gtktreeview.xml" />
-      <xi:include href="xml/gtktreednd.xml" />
-      <xi:include href="xml/gtkcellview.xml" />
-      <xi:include href="xml/gtkiconview.xml" />
-      <xi:include href="xml/gtktreesortable.xml" />
-      <xi:include href="xml/gtktreemodelsort.xml" />
-      <xi:include href="xml/gtktreemodelfilter.xml" />
-      <xi:include href="xml/gtkcelllayout.xml" />
-      <xi:include href="xml/gtkcellarea.xml" />
-      <xi:include href="xml/gtkcellareabox.xml" />
-      <xi:include href="xml/gtkcellareacontext.xml" />
-      <xi:include href="xml/gtkcellrenderer.xml" />
-      <xi:include href="xml/gtkcelleditable.xml" />
-      <xi:include href="xml/gtkcellrendereraccel.xml" />
-      <xi:include href="xml/gtkcellrenderercombo.xml" />
-      <xi:include href="xml/gtkcellrendererpixbuf.xml" />
-      <xi:include href="xml/gtkcellrendererprogress.xml" />
-      <xi:include href="xml/gtkcellrendererspin.xml" />
-      <xi:include href="xml/gtkcellrenderertext.xml" />
-      <xi:include href="xml/gtkcellrenderertoggle.xml" />
-      <xi:include href="xml/gtkcellrendererspinner.xml" />
-      <xi:include href="xml/gtkliststore.xml" />
-      <xi:include href="xml/gtktreestore.xml" />
-    </chapter>
-
-    <chapter id="MenusAndCombos">
-      <title>Menus, Combo Box, Toolbar</title>
-      <xi:include href="xml/gtkcombobox.xml" />
-      <xi:include href="xml/gtkcomboboxtext.xml" />
-      <xi:include href="xml/gtkmenu.xml" />
-      <xi:include href="xml/gtkmenubar.xml" />
-      <xi:include href="xml/gtkmenuitem.xml" />
-      <xi:include href="xml/gtkradiomenuitem.xml" />
-      <xi:include href="xml/gtkcheckmenuitem.xml" />
-      <xi:include href="xml/gtkseparatormenuitem.xml" />
-      <xi:include href="xml/gtktoolshell.xml" />
-      <xi:include href="xml/gtktoolbar.xml" />
-      <xi:include href="xml/gtktoolitem.xml" />
-      <xi:include href="xml/gtktoolpalette.xml" />
-      <xi:include href="xml/gtktoolitemgroup.xml" />
-      <xi:include href="xml/gtkseparatortoolitem.xml" />
-      <xi:include href="xml/gtktoolbutton.xml" />
-      <xi:include href="xml/gtkmenutoolbutton.xml" />
-      <xi:include href="xml/gtktoggletoolbutton.xml" />
-      <xi:include href="xml/gtkradiotoolbutton.xml" />
-      <xi:include href="xml/gtkpopover.xml" />
-      <xi:include href="xml/gtkpopovermenu.xml" />
-    </chapter>
-
-    <chapter id="SelectorWidgets">
-      <title>Selector Widgets and Dialogs</title>
-      <xi:include href="xml/gtkcolorchooser.xml" />
-      <xi:include href="xml/gtkcolorbutton.xml" />
-      <xi:include href="xml/gtkcolorchooserwidget.xml" />
-      <xi:include href="xml/gtkcolorchooserdialog.xml" />
-      <xi:include href="xml/gtkfilechooser.xml" />
-      <xi:include href="xml/gtkfilechooserbutton.xml" />
-      <xi:include href="xml/gtkfilechoosernative.xml" />
-      <xi:include href="xml/gtkfilechooserdialog.xml" />
-      <xi:include href="xml/gtkfilechooserwidget.xml" />
-      <xi:include href="xml/gtkfilefilter.xml" />
-      <xi:include href="xml/gtkfontchooser.xml" />
-      <xi:include href="xml/gtkfontbutton.xml" />
-      <xi:include href="xml/gtkfontchooserwidget.xml" />
-      <xi:include href="xml/gtkfontchooserdialog.xml" />
-      <xi:include href="xml/gtkplacessidebar.xml" />
-    </chapter>
-
-    <chapter id="Ornaments">
-      <title>Ornaments</title>
-      <xi:include href="xml/gtkframe.xml" />
-      <xi:include href="xml/gtkseparator.xml" />
-    </chapter>
-
-    <chapter id="ScrollingWidgets">
-      <title>Scrolling</title>
-      <xi:include href="xml/gtkscrollbar.xml" />
-      <xi:include href="xml/gtkscrolledwindow.xml" />
-      <xi:include href="xml/gtkscrollable.xml" />
-    </chapter>
-
-    <chapter id="Printing">
-      <title>Printing</title>
-      <xi:include href="xml/gtkprintoperation.xml" />
-      <xi:include href="xml/gtkprintcontext.xml" />
-      <xi:include href="xml/gtkprintsettings.xml" />
-      <xi:include href="xml/gtkpagesetup.xml" />
-      <xi:include href="xml/gtkpapersize.xml" />
-      <xi:include href="xml/gtkprinter.xml" />
-      <xi:include href="xml/gtkprintjob.xml" />
-      <xi:include href="xml/gtkprintunixdialog.xml" />
-      <xi:include href="xml/gtkpagesetupunixdialog.xml" />
-    </chapter>
-
-    <chapter id="ShortcutsOverview">
-      <title>Shortcuts Overview</title>
-      <xi:include href="xml/gtkshortcutswindow.xml" />
-      <xi:include href="xml/gtkshortcutssection.xml" />
-      <xi:include href="xml/gtkshortcutsgroup.xml" />
-      <xi:include href="xml/gtkshortcutsshortcut.xml" />
-    </chapter>
-
-    <chapter id="MiscObjects">
-      <title>Miscellaneous</title>
-      <xi:include href="xml/gtkadjustment.xml" />
-      <xi:include href="xml/gtkcalendar.xml" />
-      <xi:include href="xml/gtkdrawingarea.xml" />
-      <xi:include href="xml/gtkglarea.xml" />
-      <xi:include href="xml/gtkeventbox.xml" />
-      <xi:include href="xml/gtkimcontextsimple.xml" />
-      <xi:include href="xml/gtkimmulticontext.xml" />
-      <xi:include href="xml/gtksizegroup.xml" />
-      <xi:include href="xml/gtktooltip.xml" />
-      <xi:include href="xml/gtkviewport.xml" />
-      <xi:include href="xml/gtkaccessible.xml" />
-      <xi:include href="xml/gtksnapshot.xml" />
-    </chapter>
-
-    <chapter id="AbstractObjects">
-      <title>Abstract Base Classes</title>
-      <xi:include href="xml/gtkwidget.xml" />
-      <xi:include href="xml/gtkcontainer.xml" />
-      <xi:include href="xml/gtkbin.xml" />
-      <xi:include href="xml/gtkmenushell.xml" />
-      <xi:include href="xml/gtkrange.xml" />
-      <xi:include href="xml/gtkimcontext.xml" />
-      <xi:include href="xml/gtknativedialog.xml" />
-    </chapter>
-
-    <chapter id="RecentDocuments">
-      <title>Recently Used Documents</title>
-      <xi:include href="xml/gtkrecentmanager.xml" />
-      <xi:include href="xml/gtkrecentchooser.xml" />
-      <xi:include href="xml/gtkrecentchooserdialog.xml" />
-      <xi:include href="xml/gtkrecentchoosermenu.xml" />
-      <xi:include href="xml/gtkrecentchooserwidget.xml" />
-      <xi:include href="xml/gtkrecentfilter.xml" />
-    </chapter>
-
-    <chapter id="ApplicationChoosing">
-      <title>Choosing from installed applications</title>
-      <xi:include href="xml/gtkappchooser.xml" />
-      <xi:include href="xml/gtkappchooserbutton.xml" />
-      <xi:include href="xml/gtkappchooserdialog.xml" />
-      <xi:include href="xml/gtkappchooserwidget.xml" />
-    </chapter>
-
-    <chapter id="Gestures">
-      <title>Gestures and event handling</title>
-      <xi:include href="xml/gtkeventcontroller.xml" />
-      <xi:include href="xml/gtkgesture.xml" />
-      <xi:include href="xml/gtkgesturesingle.xml" />
-      <xi:include href="xml/gtkgesturedrag.xml" />
-      <xi:include href="xml/gtkgesturelongpress.xml" />
-      <xi:include href="xml/gtkgesturemultipress.xml" />
-      <xi:include href="xml/gtkgesturepan.xml" />
-      <xi:include href="xml/gtkgestureswipe.xml" />
-      <xi:include href="xml/gtkgesturerotate.xml" />
-      <xi:include href="xml/gtkgesturezoom.xml" />
-      <xi:include href="xml/gtkpadcontroller.xml" />
-    </chapter>
-
-  </part>
-
-  <part  id="gtkbase">
-    <title>GTK+ Core Reference</title>
-    <xi:include href="xml/gtkmain.xml" />
-    <xi:include href="xml/gtkfeatures.xml" />
-    <xi:include href="xml/gtkaccelgroup.xml" />
-    <xi:include href="xml/gtkaccelmap.xml" />
-    <xi:include href="xml/gtkclipboard.xml" />
-    <xi:include href="xml/gtkdnd.xml" />
-    <xi:include href="xml/gtksettings.xml" />
-    <xi:include href="xml/gtkbindings.xml" />
-    <xi:include href="xml/gtkenums.xml" />
-    <xi:include href="xml/gtkselection.xml" />
-    <xi:include href="xml/gtktesting.xml" />
-    <xi:include href="xml/filesystem.xml" />
-  </part>
-
-  <part id="theming">
-    <title>Theming in GTK+</title>
-    <xi:include href="css-overview.xml" />
-    <xi:include href="css-properties.xml" />
-    <xi:include href="xml/gtkstylecontext.xml" />
-    <xi:include href="xml/gtkcssprovider.xml" />
-    <xi:include href="xml/gtkstyleprovider.xml" />
-    <xi:include href="xml/gtkwidgetpath.xml" />
-    <xi:include href="xml/gtkicontheme.xml" />
-  </part>
-
-  <part id="migrating">
-    <title>Migrating from Previous Versions of GTK+</title>
-
-    <partintro>
-      <para>
-        This part describes what you need to change in programs use
-        older versions of GTK+ so that they can use the new features.
-        It also mentions how to convert applications using widgets
-        found in the libgnomeui library to use their counterparts
-        in GTK+.
-      </para>
-    </partintro>
-
-    <xi:include href="xml/migrating-2to4.xml" />
-    <xi:include href="xml/migrating-3to4.xml" />
-  </part>
-
-  <part>
-    <title>GTK+ Tools</title>
-    <xi:include href="gtk4-demo.xml" />
-    <xi:include href="gtk4-demo-application.xml" />
-    <xi:include href="gtk4-widget-factory.xml" />
-    <xi:include href="gtk4-icon-browser.xml" />
-    <xi:include href="gtk4-query-immodules.xml" />
-    <xi:include href="gtk4-update-icon-cache.xml" />
-    <xi:include href="gtk4-encode-symbolic-svg.xml" />
-    <xi:include href="gtk4-builder-tool.xml" />
-    <xi:include href="gtk4-launch.xml" />
-    <xi:include href="gtk4-query-settings.xml" />
-    <xi:include href="gtk4-broadwayd.xml" />
-  </part>
-
-  <part id="platform-support">
-    <title>GTK+ Platform Support</title>
-    <xi:include href="building.sgml" />
-    <xi:include href="xml/compiling.sgml" />
-    <xi:include href="running.sgml" />
-    <xi:include href="x11.sgml" />
-    <xi:include href="windows.sgml" />
-    <xi:include href="osx.sgml" />
-    <xi:include href="broadway.xml" />
-    <xi:include href="wayland.xml" />
-    <xi:include href="mir.xml" />
-  </part>
-
-  <xi:include href="glossary.xml" />
-
-  <index id="api-index-full">
-    <title>Index of all symbols</title>
-    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-deprecated" role="deprecated">
-    <title>Index of deprecated symbols</title>
-    <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-0" role="3.0">
-    <title>Index of new symbols in 3.0</title>
-    <xi:include href="xml/api-index-3.0.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-2" role="3.2">
-    <title>Index of new symbols in 3.2</title>
-    <xi:include href="xml/api-index-3.2.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-4" role="3.4">
-    <title>Index of new symbols in 3.4</title>
-    <xi:include href="xml/api-index-3.4.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-6" role="3.6">
-    <title>Index of new symbols in 3.6</title>
-    <xi:include href="xml/api-index-3.6.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-8" role="3.8">
-    <title>Index of new symbols in 3.8</title>
-    <xi:include href="xml/api-index-3.8.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-10" role="3.10">
-    <title>Index of new symbols in 3.10</title>
-    <xi:include href="xml/api-index-3.10.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-12" role="3.12">
-    <title>Index of new symbols in 3.12</title>
-    <xi:include href="xml/api-index-3.12.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-14" role="3.14">
-    <title>Index of new symbols in 3.14</title>
-    <xi:include href="xml/api-index-3.14.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-16" role="3.16">
-    <title>Index of new symbols in 3.16</title>
-    <xi:include href="xml/api-index-3.16.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-18" role="3.18">
-    <title>Index of new symbols in 3.18</title>
-    <xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-20" role="3.20">
-    <title>Index of new symbols in 3.20</title>
-    <xi:include href="xml/api-index-3.20.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-22" role="3.22">
-    <title>Index of new symbols in 3.22</title>
-    <xi:include href="xml/api-index-3.22.xml"><xi:fallback /></xi:include>
-  </index>
-  <index id="api-index-3-90" role="3.90">
-    <title>Index of new symbols in 3.90</title>
-    <xi:include href="xml/api-index-3.90.xml"><xi:fallback /></xi:include>
-  </index>
-
-  <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-
-</book>
diff --git a/docs/reference/gtk/gtk3-overrides.txt b/docs/reference/gtk/gtk3-overrides.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/reference/gtk/gtk4-docs.xml b/docs/reference/gtk/gtk4-docs.xml
new file mode 100644 (file)
index 0000000..ff1bc9c
--- /dev/null
@@ -0,0 +1,448 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
+<!ENTITY version SYSTEM "version.xml">
+<!ENTITY pi "&#960;">
+<!ENTITY solidus "&#8260;">
+]>
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+  <bookinfo>
+    <title>GTK+ 4 Reference Manual</title>
+    <releaseinfo>
+      This document is for the GTK+ 4 library, version &version;.
+      The latest versions can be found online at
+      <ulink role="online-location" url="https://developer.gnome.org/gtk4/">https://developer.gnome.org/gtk4/</ulink>.
+      If you are looking for the older GTK+ 3 series of libraries,
+      see <ulink role="online-location" url="https://developer.gnome.org/gtk3/">https://developer.gnome.org/gtk3/</ulink>.
+    </releaseinfo>
+  </bookinfo>
+
+  <part id="gtk">
+    <title>GTK+ Overview</title>
+    <xi:include href="overview.xml"/>
+    <xi:include href="xml/getting_started.xml"/>
+    <xi:include href="resources.sgml" />
+    <xi:include href="xml/question_index.sgml" />
+    <xi:include href="drawing-model.xml" />
+    <xi:include href="xml/input-handling.xml" />
+  </part>
+
+  <part id="gtkobjects">
+    <title>GTK+ Widgets and Objects</title>
+
+    <chapter>
+      <title>Object Hierarchy</title>
+      <xi:include href="xml/tree_index.sgml" />
+    </chapter>
+
+    <chapter>
+      <title>Widget Gallery</title>
+      <xi:include href="visual_index.xml" />
+    </chapter>
+
+    <chapter id="Application">
+      <title>Application support</title>
+      <xi:include href="xml/gtkapplication.xml" />
+      <xi:include href="xml/gtkapplicationwindow.xml" />
+      <xi:include href="xml/gtkactionable.xml" />
+    </chapter>
+
+    <chapter id="Builder">
+      <title>Interface builder</title>
+      <xi:include href="xml/gtkbuilder.xml" />
+      <xi:include href="xml/gtkbuildable.xml" />
+    </chapter>
+
+    <chapter id="WindowWidgets">
+      <title>Windows</title>
+      <xi:include href="xml/gtkwindow.xml" />
+      <xi:include href="xml/gtkdialog.xml" />
+      <xi:include href="xml/gtkmessagedialog.xml" />
+      <xi:include href="xml/gtkaboutdialog.xml" />
+      <xi:include href="xml/gtkassistant.xml" />
+      <xi:include href="xml/gtkinvisible.xml" />
+      <xi:include href="xml/gtkwindowgroup.xml" />
+    </chapter>
+
+    <chapter id="LayoutContainers">
+      <title>Layout Containers</title>
+      <xi:include href="xml/gtkbox.xml" />
+      <xi:include href="xml/gtkgrid.xml" />
+      <xi:include href="xml/gtkrevealer.xml" />
+      <xi:include href="xml/gtklistbox.xml" />
+      <xi:include href="xml/gtkflowbox.xml" />
+      <xi:include href="xml/gtkstack.xml" />
+      <xi:include href="xml/gtkstackswitcher.xml" />
+      <xi:include href="xml/gtkstacksidebar.xml" />
+      <xi:include href="xml/gtkactionbar.xml" />
+      <xi:include href="xml/gtkheaderbar.xml" />
+      <xi:include href="xml/gtkoverlay.xml" />
+      <xi:include href="xml/gtkbbox.xml" />
+      <xi:include href="xml/gtkpaned.xml" />
+      <xi:include href="xml/gtklayout.xml" />
+      <xi:include href="xml/gtknotebook.xml" />
+      <xi:include href="xml/gtkexpander.xml" />
+      <xi:include href="xml/gtkorientable.xml" />
+      <xi:include href="xml/gtkaspectframe.xml" />
+      <xi:include href="xml/gtkfixed.xml" />
+    </chapter>
+
+    <chapter id="DisplayWidgets">
+      <title>Display Widgets</title>
+      <xi:include href="xml/gtklabel.xml" />
+      <xi:include href="xml/gtkimage.xml" />
+      <xi:include href="xml/gtkspinner.xml" />
+      <xi:include href="xml/gtkinfobar.xml" />
+      <xi:include href="xml/gtkprogressbar.xml" />
+      <xi:include href="xml/gtklevelbar.xml" />
+      <xi:include href="xml/gtkstatusbar.xml" />
+      <xi:include href="xml/gtkaccellabel.xml" />
+    </chapter>
+
+    <chapter id="ButtonWidgets">
+      <title>Buttons and Toggles</title>
+      <xi:include href="xml/gtkbutton.xml" />
+      <xi:include href="xml/gtkcheckbutton.xml" />
+      <xi:include href="xml/gtkradiobutton.xml" />
+      <xi:include href="xml/gtktogglebutton.xml" />
+      <xi:include href="xml/gtklinkbutton.xml" />
+      <xi:include href="xml/gtkmenubutton.xml" />
+      <xi:include href="xml/gtkswitch.xml" />
+      <xi:include href="xml/gtkscalebutton.xml" />
+      <xi:include href="xml/gtkvolumebutton.xml" />
+      <xi:include href="xml/gtklockbutton.xml" />
+      <xi:include href="xml/gtkmodelbutton.xml" />
+    </chapter>
+
+    <chapter id="NumericEntry">
+      <title>Numeric and Text Data Entry</title>
+      <xi:include href="xml/gtkentry.xml" />
+      <xi:include href="xml/gtkentrybuffer.xml" />
+      <xi:include href="xml/gtkentrycompletion.xml" />
+      <xi:include href="xml/gtkscale.xml" />
+      <xi:include href="xml/gtkspinbutton.xml" />
+      <xi:include href="xml/gtksearchentry.xml" />
+      <xi:include href="xml/gtksearchbar.xml" />
+      <xi:include href="xml/gtkeditable.xml" />
+    </chapter>
+
+    <chapter id="TextWidgetObjects">
+      <title>Multiline Text Editor</title>
+      <xi:include href="xml/text_widget.sgml" />
+      <xi:include href="xml/gtktextiter.xml" />
+      <xi:include href="xml/gtktextmark.xml" />
+      <xi:include href="xml/gtktextbuffer.xml" />
+      <xi:include href="xml/gtktexttag.xml" />
+      <xi:include href="xml/gtktexttagtable.xml" />
+      <xi:include href="xml/gtktextview.xml" />
+    </chapter>
+
+    <chapter id="TreeWidgetObjects">
+      <title>Tree, List and Icon Grid Widgets</title>
+      <xi:include href="xml/tree_widget.sgml" />
+      <xi:include href="xml/gtktreemodel.xml" />
+      <xi:include href="xml/gtktreeselection.xml" />
+      <xi:include href="xml/gtktreeviewcolumn.xml" />
+      <xi:include href="xml/gtktreeview.xml" />
+      <xi:include href="xml/gtktreednd.xml" />
+      <xi:include href="xml/gtkcellview.xml" />
+      <xi:include href="xml/gtkiconview.xml" />
+      <xi:include href="xml/gtktreesortable.xml" />
+      <xi:include href="xml/gtktreemodelsort.xml" />
+      <xi:include href="xml/gtktreemodelfilter.xml" />
+      <xi:include href="xml/gtkcelllayout.xml" />
+      <xi:include href="xml/gtkcellarea.xml" />
+      <xi:include href="xml/gtkcellareabox.xml" />
+      <xi:include href="xml/gtkcellareacontext.xml" />
+      <xi:include href="xml/gtkcellrenderer.xml" />
+      <xi:include href="xml/gtkcelleditable.xml" />
+      <xi:include href="xml/gtkcellrendereraccel.xml" />
+      <xi:include href="xml/gtkcellrenderercombo.xml" />
+      <xi:include href="xml/gtkcellrendererpixbuf.xml" />
+      <xi:include href="xml/gtkcellrendererprogress.xml" />
+      <xi:include href="xml/gtkcellrendererspin.xml" />
+      <xi:include href="xml/gtkcellrenderertext.xml" />
+      <xi:include href="xml/gtkcellrenderertoggle.xml" />
+      <xi:include href="xml/gtkcellrendererspinner.xml" />
+      <xi:include href="xml/gtkliststore.xml" />
+      <xi:include href="xml/gtktreestore.xml" />
+    </chapter>
+
+    <chapter id="MenusAndCombos">
+      <title>Menus, Combo Box, Toolbar</title>
+      <xi:include href="xml/gtkcombobox.xml" />
+      <xi:include href="xml/gtkcomboboxtext.xml" />
+      <xi:include href="xml/gtkmenu.xml" />
+      <xi:include href="xml/gtkmenubar.xml" />
+      <xi:include href="xml/gtkmenuitem.xml" />
+      <xi:include href="xml/gtkradiomenuitem.xml" />
+      <xi:include href="xml/gtkcheckmenuitem.xml" />
+      <xi:include href="xml/gtkseparatormenuitem.xml" />
+      <xi:include href="xml/gtktoolshell.xml" />
+      <xi:include href="xml/gtktoolbar.xml" />
+      <xi:include href="xml/gtktoolitem.xml" />
+      <xi:include href="xml/gtktoolpalette.xml" />
+      <xi:include href="xml/gtktoolitemgroup.xml" />
+      <xi:include href="xml/gtkseparatortoolitem.xml" />
+      <xi:include href="xml/gtktoolbutton.xml" />
+      <xi:include href="xml/gtkmenutoolbutton.xml" />
+      <xi:include href="xml/gtktoggletoolbutton.xml" />
+      <xi:include href="xml/gtkradiotoolbutton.xml" />
+      <xi:include href="xml/gtkpopover.xml" />
+      <xi:include href="xml/gtkpopovermenu.xml" />
+    </chapter>
+
+    <chapter id="SelectorWidgets">
+      <title>Selector Widgets and Dialogs</title>
+      <xi:include href="xml/gtkcolorchooser.xml" />
+      <xi:include href="xml/gtkcolorbutton.xml" />
+      <xi:include href="xml/gtkcolorchooserwidget.xml" />
+      <xi:include href="xml/gtkcolorchooserdialog.xml" />
+      <xi:include href="xml/gtkfilechooser.xml" />
+      <xi:include href="xml/gtkfilechooserbutton.xml" />
+      <xi:include href="xml/gtkfilechoosernative.xml" />
+      <xi:include href="xml/gtkfilechooserdialog.xml" />
+      <xi:include href="xml/gtkfilechooserwidget.xml" />
+      <xi:include href="xml/gtkfilefilter.xml" />
+      <xi:include href="xml/gtkfontchooser.xml" />
+      <xi:include href="xml/gtkfontbutton.xml" />
+      <xi:include href="xml/gtkfontchooserwidget.xml" />
+      <xi:include href="xml/gtkfontchooserdialog.xml" />
+      <xi:include href="xml/gtkplacessidebar.xml" />
+    </chapter>
+
+    <chapter id="Ornaments">
+      <title>Ornaments</title>
+      <xi:include href="xml/gtkframe.xml" />
+      <xi:include href="xml/gtkseparator.xml" />
+    </chapter>
+
+    <chapter id="ScrollingWidgets">
+      <title>Scrolling</title>
+      <xi:include href="xml/gtkscrollbar.xml" />
+      <xi:include href="xml/gtkscrolledwindow.xml" />
+      <xi:include href="xml/gtkscrollable.xml" />
+    </chapter>
+
+    <chapter id="Printing">
+      <title>Printing</title>
+      <xi:include href="xml/gtkprintoperation.xml" />
+      <xi:include href="xml/gtkprintcontext.xml" />
+      <xi:include href="xml/gtkprintsettings.xml" />
+      <xi:include href="xml/gtkpagesetup.xml" />
+      <xi:include href="xml/gtkpapersize.xml" />
+      <xi:include href="xml/gtkprinter.xml" />
+      <xi:include href="xml/gtkprintjob.xml" />
+      <xi:include href="xml/gtkprintunixdialog.xml" />
+      <xi:include href="xml/gtkpagesetupunixdialog.xml" />
+    </chapter>
+
+    <chapter id="ShortcutsOverview">
+      <title>Shortcuts Overview</title>
+      <xi:include href="xml/gtkshortcutswindow.xml" />
+      <xi:include href="xml/gtkshortcutssection.xml" />
+      <xi:include href="xml/gtkshortcutsgroup.xml" />
+      <xi:include href="xml/gtkshortcutsshortcut.xml" />
+    </chapter>
+
+    <chapter id="MiscObjects">
+      <title>Miscellaneous</title>
+      <xi:include href="xml/gtkadjustment.xml" />
+      <xi:include href="xml/gtkcalendar.xml" />
+      <xi:include href="xml/gtkdrawingarea.xml" />
+      <xi:include href="xml/gtkglarea.xml" />
+      <xi:include href="xml/gtkeventbox.xml" />
+      <xi:include href="xml/gtkimcontextsimple.xml" />
+      <xi:include href="xml/gtkimmulticontext.xml" />
+      <xi:include href="xml/gtksizegroup.xml" />
+      <xi:include href="xml/gtktooltip.xml" />
+      <xi:include href="xml/gtkviewport.xml" />
+      <xi:include href="xml/gtkaccessible.xml" />
+      <xi:include href="xml/gtksnapshot.xml" />
+    </chapter>
+
+    <chapter id="AbstractObjects">
+      <title>Abstract Base Classes</title>
+      <xi:include href="xml/gtkwidget.xml" />
+      <xi:include href="xml/gtkcontainer.xml" />
+      <xi:include href="xml/gtkbin.xml" />
+      <xi:include href="xml/gtkmenushell.xml" />
+      <xi:include href="xml/gtkrange.xml" />
+      <xi:include href="xml/gtkimcontext.xml" />
+      <xi:include href="xml/gtknativedialog.xml" />
+    </chapter>
+
+    <chapter id="RecentDocuments">
+      <title>Recently Used Documents</title>
+      <xi:include href="xml/gtkrecentmanager.xml" />
+      <xi:include href="xml/gtkrecentchooser.xml" />
+      <xi:include href="xml/gtkrecentchooserdialog.xml" />
+      <xi:include href="xml/gtkrecentchoosermenu.xml" />
+      <xi:include href="xml/gtkrecentchooserwidget.xml" />
+      <xi:include href="xml/gtkrecentfilter.xml" />
+    </chapter>
+
+    <chapter id="ApplicationChoosing">
+      <title>Choosing from installed applications</title>
+      <xi:include href="xml/gtkappchooser.xml" />
+      <xi:include href="xml/gtkappchooserbutton.xml" />
+      <xi:include href="xml/gtkappchooserdialog.xml" />
+      <xi:include href="xml/gtkappchooserwidget.xml" />
+    </chapter>
+
+    <chapter id="Gestures">
+      <title>Gestures and event handling</title>
+      <xi:include href="xml/gtkeventcontroller.xml" />
+      <xi:include href="xml/gtkgesture.xml" />
+      <xi:include href="xml/gtkgesturesingle.xml" />
+      <xi:include href="xml/gtkgesturedrag.xml" />
+      <xi:include href="xml/gtkgesturelongpress.xml" />
+      <xi:include href="xml/gtkgesturemultipress.xml" />
+      <xi:include href="xml/gtkgesturepan.xml" />
+      <xi:include href="xml/gtkgestureswipe.xml" />
+      <xi:include href="xml/gtkgesturerotate.xml" />
+      <xi:include href="xml/gtkgesturezoom.xml" />
+      <xi:include href="xml/gtkpadcontroller.xml" />
+    </chapter>
+
+  </part>
+
+  <part  id="gtkbase">
+    <title>GTK+ Core Reference</title>
+    <xi:include href="xml/gtkmain.xml" />
+    <xi:include href="xml/gtkfeatures.xml" />
+    <xi:include href="xml/gtkaccelgroup.xml" />
+    <xi:include href="xml/gtkaccelmap.xml" />
+    <xi:include href="xml/gtkclipboard.xml" />
+    <xi:include href="xml/gtkdnd.xml" />
+    <xi:include href="xml/gtksettings.xml" />
+    <xi:include href="xml/gtkbindings.xml" />
+    <xi:include href="xml/gtkenums.xml" />
+    <xi:include href="xml/gtkselection.xml" />
+    <xi:include href="xml/gtktesting.xml" />
+    <xi:include href="xml/filesystem.xml" />
+  </part>
+
+  <part id="theming">
+    <title>Theming in GTK+</title>
+    <xi:include href="css-overview.xml" />
+    <xi:include href="css-properties.xml" />
+    <xi:include href="xml/gtkstylecontext.xml" />
+    <xi:include href="xml/gtkcssprovider.xml" />
+    <xi:include href="xml/gtkstyleprovider.xml" />
+    <xi:include href="xml/gtkwidgetpath.xml" />
+    <xi:include href="xml/gtkicontheme.xml" />
+  </part>
+
+  <part id="migrating">
+    <title>Migrating from Previous Versions of GTK+</title>
+
+    <partintro>
+      <para>
+        This part describes what you need to change in programs use
+        older versions of GTK+ so that they can use the new features.
+        It also mentions how to convert applications using widgets
+        found in the libgnomeui library to use their counterparts
+        in GTK+.
+      </para>
+    </partintro>
+
+    <xi:include href="xml/migrating-2to4.xml" />
+    <xi:include href="xml/migrating-3to4.xml" />
+  </part>
+
+  <part>
+    <title>GTK+ Tools</title>
+    <xi:include href="gtk4-demo.xml" />
+    <xi:include href="gtk4-demo-application.xml" />
+    <xi:include href="gtk4-widget-factory.xml" />
+    <xi:include href="gtk4-icon-browser.xml" />
+    <xi:include href="gtk4-query-immodules.xml" />
+    <xi:include href="gtk4-update-icon-cache.xml" />
+    <xi:include href="gtk4-encode-symbolic-svg.xml" />
+    <xi:include href="gtk4-builder-tool.xml" />
+    <xi:include href="gtk4-launch.xml" />
+    <xi:include href="gtk4-query-settings.xml" />
+    <xi:include href="gtk4-broadwayd.xml" />
+  </part>
+
+  <part id="platform-support">
+    <title>GTK+ Platform Support</title>
+    <xi:include href="building.sgml" />
+    <xi:include href="xml/compiling.sgml" />
+    <xi:include href="running.sgml" />
+    <xi:include href="x11.sgml" />
+    <xi:include href="windows.sgml" />
+    <xi:include href="osx.sgml" />
+    <xi:include href="broadway.xml" />
+    <xi:include href="wayland.xml" />
+    <xi:include href="mir.xml" />
+  </part>
+
+  <xi:include href="glossary.xml" />
+
+  <index id="api-index-full">
+    <title>Index of all symbols</title>
+    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-deprecated" role="deprecated">
+    <title>Index of deprecated symbols</title>
+    <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-0" role="3.0">
+    <title>Index of new symbols in 3.0</title>
+    <xi:include href="xml/api-index-3.0.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-2" role="3.2">
+    <title>Index of new symbols in 3.2</title>
+    <xi:include href="xml/api-index-3.2.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-4" role="3.4">
+    <title>Index of new symbols in 3.4</title>
+    <xi:include href="xml/api-index-3.4.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-6" role="3.6">
+    <title>Index of new symbols in 3.6</title>
+    <xi:include href="xml/api-index-3.6.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-8" role="3.8">
+    <title>Index of new symbols in 3.8</title>
+    <xi:include href="xml/api-index-3.8.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-10" role="3.10">
+    <title>Index of new symbols in 3.10</title>
+    <xi:include href="xml/api-index-3.10.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-12" role="3.12">
+    <title>Index of new symbols in 3.12</title>
+    <xi:include href="xml/api-index-3.12.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-14" role="3.14">
+    <title>Index of new symbols in 3.14</title>
+    <xi:include href="xml/api-index-3.14.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-16" role="3.16">
+    <title>Index of new symbols in 3.16</title>
+    <xi:include href="xml/api-index-3.16.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-18" role="3.18">
+    <title>Index of new symbols in 3.18</title>
+    <xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-20" role="3.20">
+    <title>Index of new symbols in 3.20</title>
+    <xi:include href="xml/api-index-3.20.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-22" role="3.22">
+    <title>Index of new symbols in 3.22</title>
+    <xi:include href="xml/api-index-3.22.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-3-90" role="3.90">
+    <title>Index of new symbols in 3.90</title>
+    <xi:include href="xml/api-index-3.90.xml"><xi:fallback /></xi:include>
+  </index>
+
+  <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
+
+</book>
diff --git a/docs/reference/gtk/gtk4-overrides.txt b/docs/reference/gtk/gtk4-overrides.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/docs/reference/gtk/meson.build b/docs/reference/gtk/meson.build
new file mode 100644 (file)
index 0000000..4f51593
--- /dev/null
@@ -0,0 +1,33 @@
+private_headers = [
+]
+
+images = [
+]
+
+configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+
+gnome.gtkdoc('gtk4',
+             main_xml: 'gtk4-docs.xml',
+             src_dir: [
+              join_paths(meson.source_root(), 'gtk'),
+              join_paths(meson.build_root(), 'gtk'),
+            ],
+             dependencies: libgtk_dep,
+             gobject_typesfile: 'gtk4.types',
+             scan_args: [
+               '--ignore-decorators=_GDK_EXTERN',
+              '--ignore-decorators=G_GNUC_WARN_UNUSED_RESULT',
+               '--ignore-headers=' + ' '.join(private_headers),
+             ],
+             fixxref_args: [
+               '--html-dir=@0@'.format(docpath),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+               '--extra-dir=@0@'.format(cairo_docpath),
+               '--extra-dir=@0@'.format(gdkpixbuf_docpath),
+              '--extra-dir=../gdk',
+              '--extra-dir=../gsk',
+             ],
+             html_assets: images,
+             install: true)
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
new file mode 100644 (file)
index 0000000..53458a6
--- /dev/null
@@ -0,0 +1,17 @@
+glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
+glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
+
+cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix')
+cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo')
+
+gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix')
+gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf')
+
+docpath = join_paths(gtk_datadir, 'gtk-doc', 'html')
+
+version_conf = configuration_data()
+version_conf.set('GTK_VERSION', meson.project_version())
+
+subdir('gdk')
+subdir('gsk')
+subdir('gtk')
diff --git a/docs/tools/meson.build b/docs/tools/meson.build
new file mode 100644 (file)
index 0000000..05621ee
--- /dev/null
@@ -0,0 +1,12 @@
+if x11_enabled
+  doc_shooter_sources = [
+    'shadow.c',
+    'shooter.c',
+    'widgets.c',
+    '../../tests/gtkgears.c',
+  ]
+
+  doc_shooter = executable('doc-shooter', doc_shooter_sources,
+                           include_directories: [ confinc, gdkinc, gtkinc, testinc, ],
+                           dependencies: libgtk_dep)
+endif
index da5505ef2789fa1dd800031601fc1872916a3d23..4dcc641a195664580a2abfb3e614be2cd5ab16bd 100644 (file)
@@ -291,7 +291,9 @@ endif
 
 confinc = include_directories('.')
 gdkinc = include_directories('gdk')
+gskinc = include_directories('gsk')
 gtkinc = include_directories('gtk')
+testinc = include_directories('tests')
 
 glib_dep       = dependency('glib-2.0', version: glib_req)
 giounix_dep    = dependency('gio-unix-2.0', version: glib_req, required: false)
@@ -577,3 +579,8 @@ endif
 
 subdir('po')
 subdir('po-properties')
+
+if get_option('enable-documentation')
+  subdir('docs/tools')
+  subdir('docs/reference')
+endif
index d23e319e4cbbf5c35685c19397e313e36d4d36e5..f9a419dec48b1e6eb50a845d41860980001be139 100644 (file)
@@ -24,3 +24,5 @@ option('disable-modules', type: 'boolean', value : 'false',
   description : 'Disable dynamic module loading')
 option('with-included-immodules', type: 'string', value : '',
   description : 'Build the specified input methods into gtk (comma-separated list or "all" or "none")')
+option('enable-documentation', type: 'boolean', value: 'false',
+  description : 'Build API reference and tools documentation')